package com.zkthink.ceres.finance.dto;

import com.zkthink.base.entity.SuperEntity;
import com.zkthink.ceres.sms.enumeration.VerificationCodeType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 会员收款帐户表
 * </p>
 *
 * @author vivi.huang
 * @since 2020-05-25
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "MemberCollectingAccountSaveDTO", description = "会员收款帐户表")
public class MemberCollectingAccountSaveDTO implements Serializable {
    private static final long serialVersionUID = 1L;


    @ApiModelProperty("会员id")
    private Long mid;
    /**
     * 持卡人姓名
     */
    @ApiModelProperty(value = "持卡人姓名")
    @Length(max = 200, message = "持卡人姓名长度不能超过200")
    private String cardholderName;
    /**
     * 卡号
     */
    @ApiModelProperty(value = "卡号")
    @Length(max = 250, message = "卡号长度不能超过250")
    private String cardNumber;
    /**
     * 银行
     */
    @ApiModelProperty(value = "银行")
    @Length(max = 300, message = "银行长度不能超过300")
    private String bank;
    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码")
    @Length(max = 100, message = "手机号码长度不能超过100")
    private String phone;

    /**
     * 类型
     */
    @ApiModelProperty(value = "类型  收款帐号类型:REGISTER_COLLECTING_ACCOUNT ")
    @NotNull(message = "类型不能为空")
    private VerificationCodeType type;

    /**
     * 验证码
     */
    @ApiModelProperty(value = "验证码")
    @NotEmpty(groups = SuperEntity.Update.class, message = "验证码不能为空")
    private String code;

}
